A portion of the disclosure of this patent document contains material, which is subject to copyright protection. The copyright owner has no objection to the reproduction by anyone of the patent document or the patent disclosure as it appears in the United States Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
1. Field of the Invention
The present invention is directed to technology for generating responses to server requests.
2. Description of the Related Art
Identity Systems have become more popular with the growth of the Internet and the use of networks and other information technologies. In general, an Identity System provides for the creation, removal, editing and other management of identity information stored in various types of data stores. The identity information pertains to users, groups, organizations and things. For each entry in the data store, a set of attributes is stored. For example, the attributes stored for a user may include a name, address, employee number, telephone number, email address, user ID and password. The Identity System can also manage access privileges that govern the subject matter an entity can view, create, modify or use in the Identity System.
An Identity System responds to users"" identity information related requests from browsers or third-party applications. For example, a user may request to search and view identity information from the profiles of individuals that meet a specified set of criteria. In providing a response, the Identity System gathers, organizes, and supplies identity information. In traditional Identity Systems, the program performing the request""s identified operation dictates the organization of the response""s identity information. Allowing the program to dictate the response""s organization of identity information impedes a user""s ability to customize response formats. The need for customization is prevalent in situations where a user interfaces to the Identity System through a proprietary application or prior generation browser.
In some instances, a request causes the Identity System to execute multiple programs in order to obtain and provide a responsexe2x80x94resulting in a traditional Identity Systems generating multiple responses to the same request. For example, a request to search for identity information may cause the Identity System to separately return a search result and a navigation bar for enabling the user to navigate the search result. Providing multiple responses to a single request forces the user""s browser to integrate the responses and wastes communication bandwidth.
It is desirable for an Identity System to supply a single response to a request and allow users to customize the response""s format.
Roughly described, embodiments of the present invention enable an Identity System to deliver customized request responses that integrate the results of multiple programs. The Identity System receives a user request and identifies all the programs required to complete the request. For each program, the Identity System selects an XML template and XSL stylesheet that provide an organization and display format for the program""s results. The Identity System executes all of the programs for a request and organizes their results into a single data structure, based on the templates for each program. The Identity System then transforms the data structure into a single Output XML containing attributes and their display characteristics. The Output XML can be provided directly to the user or receive further processing using the XSL stylesheets.
In one embodiment, the Identity System includes a program service and XML data registry. The Identity System translates each requestxe2x80x94identifying all of the required programs for the request using the program service and identifying the required XML templates and XSL stylesheets using the XML data registry. Identity System users can customize the organization and display format of request responses by loading custom templates and stylesheets into the Identity System and registering them in the XML data registry.
In further embodiments of the present invention, customized Output XML is generated in processing environments other than an Identity System. Generating customized Output XML can have broad applicability to enhance the performance of many different server based systems.
The present invention can be accomplished using hardware, software, or a combination of both hardware and software. The software used for the present invention is stored on one or more processor readable storage media including hard disk drives, CD-ROMs, DVDs, optical disks, floppy disks, tape drives, RAM, ROM or other suitable storage devices. In alternative embodiments, some or all of the software can be replaced by dedicated hardware including custom integrated circuits, gate arrays, FPGAs, PLDs, and special purpose computers.